From 723e50990fe6400bcd94985ae7475f9f0eadfc2f Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Tue, 28 Aug 2018 17:22:13 +0800 Subject: [PATCH] gtk/fallback-c89.c: Add C89 fallback for trunc() Check for trunc() during configure and provide a fallback implementation for it if it is not found. --- config.h.win32.in | 5 +++++ configure.ac | 5 +++-- gtk/fallback-c89.c | 8 ++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/config.h.win32.in b/config.h.win32.in index a73067e420..cf9d9c4d18 100644 --- a/config.h.win32.in +++ b/config.h.win32.in @@ -209,6 +209,11 @@ /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 +/* Define to 1 if trunc() is available */ +#if !defined (_MSC_VER) || (_MSC_VER >= 1800) +# define HAVE_TRUNC 1 +#endif + /* Define to 1 if you have the header file. */ #ifndef _MSC_VER #define HAVE_UNISTD_H 1 diff --git a/configure.ac b/configure.ac index aadaa560ad..9a44f1830e 100644 --- a/configure.ac +++ b/configure.ac @@ -876,9 +876,10 @@ AC_CHECK_FUNCS(mallinfo) AC_CHECK_FUNCS(getresuid) AC_TYPE_UID_T -# Check for round(), rint(), isnan(), isinf() and nearbyint() +# Check for round(), rint(), isnan() and isinf() +# Check for log2(), exp2(), nearbyint() and trunc() AC_CHECK_LIB(m,round,,) -AC_CHECK_FUNCS(round rint nearbyint sincos exp2 log2) +AC_CHECK_FUNCS(round rint nearbyint sincos exp2 log2 trunc) AC_CHECK_DECLS([isnan, isinf], [], [], [[#include ]]) # Checks for gdkspawn diff --git a/gtk/fallback-c89.c b/gtk/fallback-c89.c index 61536771ee..3fb24ad8b0 100644 --- a/gtk/fallback-c89.c +++ b/gtk/fallback-c89.c @@ -106,3 +106,11 @@ exp2 (double x) return pow (2.0, x); } #endif + +#ifndef HAVE_TRUNC +static inline double +trunc (double x) +{ + return (x > 0 ? floor (x) : ceil (x)); +} +#endif -- 2.30.2